package modelo

import java.util.ArrayList
import org.uqbar.commons.utils.Observable
import java.util.List
import org.uqbar.commons.model.ObservableUtils

@Observable
class Observer {
	@Property Jugador jugador
	@Property String msj1= "nada que decir"
	@Property String msj2= "nada que decir"
	@Property String msj3= "nada que decir"
	@Property String msj4= "nada que decir"
	@Property boolean noHayMasZombies = false
	@Property boolean perdiste = false
	
	
	
	
	def cambiaMensaje(String string) {
		msj4=msj3
		msj3=msj2
		msj2=msj1
		msj1=string
		
	}
	
	def  recibiDanio(Atacante atacante, int i) {
		this.cambiaMensaje(atacante.nombre+"recibio"+i+"danio")
	}
	
	def  meMori(Atacante atacante) {
		this.cambiaMensaje(atacante.nombre+" se murio")
	}
	
	def ahoraNoHayMasZombies() {
		this.cambiaMensaje("las plantas defendieron el jardin exitosamente yay!")
		noHayMasZombies=true
	}
	
	def elJugadorGanaDinero(int i) {
		this.cambiaMensaje("el jugador recibe"+i+"recursos")
		jugador.tomaOro(i)
	}
	
	
	def getElJugadorGanaUnaPlanta() {
		this.cambiaMensaje("el jugador recibio una nueva planta")
		jugador.tomaUnaPlanta
	}
	
	def ahoraPerdiste() {
		this.cambiaMensaje("Perdiste")
		this.perdiste=true
	}
	
	def desplantame(Planta planta) {
		jugador.desplanta(planta)
	}
	
	def noTengoMasPlanta(Zombie zombie) {
		this.cambiaMensaje("el zombie ataca una nueva planta")
		jugador.atacar(zombie)
	}
	
	
}